#ifndef LOGGER_H
#define LOGGER_H
#define CONSOLE_LOGGER

#ifdef CONSOLE_LOGGER
#include <iostream>
#endif
namespace StompedReality
{
#ifdef DEBUG

#ifdef CONSOLE_LOGGER

#define LogCallFunctionInfo( className, functionName ) \
  std::cout << std::endl << "[info] Function call " << className << "::" << functionName;

#define LogCallFunctionSubInfo( sub ) \
  std::cout << std::endl << "\t[info]\t" << sub;
#define LogCallFunctionSubWarning( warning ) \
  std::cout << std::endl << "\t[warning]\t" << "\t" << warning;

#define LogCallFunctionError( className, functionName, error ) \
  std::cout << std::endl << "[error] Function call " << className << "::" << functionName << "\t" << error;

#define LogCallFunctionWarning( className, functionName, warning ) \
  std::cout << std::endl << "[warning] Function call " << className << "::" << functionName << "\t" << warning;

#define LogInfoPair( key, value ) \
  std::cout << "\t" << key << " : " << value;

#endif // CONSOLE_LOGGER end
#else // notDEUG

#define LogCallFunctionInfo( className, functionName )
#define LogCallFunctionSubInfo( sub )
#define LogCallFunctionSubWarning( warning )
#define LogInfoPair( key, value )
#define LogCallFunctionError( className, functionName, error )
#define LogCallFunctionWarning( className, functionName, warning )

#endif // end DEBUG else
}

#endif // LOGGER_H
